/***
 * 发票管理js
 * 20151102
 */
$(function() {
	// 渲染页面-通用部分；
	commTemplUtil.initPage();
	// 渲染左侧菜单;
	commTemplUtil.initCommLeftMemu();
	
	//普通发票查询信息
	getClassifyData(1);
	
	//绑定新增普通发票
	initAdd();
	
	//初始化增票信息及表单验证提交
	initVATinvoice();
});


//普通发票查询查询
function getClassifyData(page){
	
	//页面列表模板
	var templ = _.template($("#item-template").html());

	// 普通发票查询
	$.ajax({
		url : PAGE_CONFIG.requestUrl.queryGeneralticket,
		type : "get",
		success : function (result) {
			//响应
			setClassifyData(result.data, templ);
		},
		error : function () {
			var conf = {
					title : "注意",
					message : "获取发票信息失败!",
					ok_txt : "确定"
				};
					commTemplUtil.showErrorDialog(conf);
		}
	});
}

var classifyTempl = _.template($('#item-template').html());

/**
 * 生成普通发票管理列表,
 */
function setClassifyData(data, templ) {
	var classifyTemplHtml = templ(data);
	$("#commTabs_1_body").html(classifyTemplHtml);
	bindEvents(templ);
};

/***
 * 页面填充数据后, 绑定事件;
 */
function bindEvents(htmlObj) {

	var commBody = $("#commTabs_1_body");
	

	// 删除
	commBody.find(".sel-edit-del").on("click", function () {
		
		var tickId = $(this).parents("ul").attr("data-id");
		
		//确认框模板
		var confirmObj1 = _.template($('#item-confirm').html());
		var dia = dialog({
			title: '注意',
			content: confirmObj1
		});
		dia.showModal();
		
		$("#tj").on("click", function(event) {
			$.ajax({
				url: PAGE_CONFIG.requestUrl.deltick,
				type: "delete",
				data: {
					id: tickId,
					_token: COMM_DATA.csrfToken
				},
				success: function(result) {
					//响应
    				setClassifyData(result.data, classifyTempl);
    				dia.remove();
				},
				error: function() {
					dia.remove();
					
					var conf = {
							title : "注意",
							message : "删除普通发票失败!",
							ok_txt : "确定"
						};
							commTemplUtil.showErrorDialog(conf);
				}
			});
		});
		$(".remove").click(function() {
			dia.remove();
		});
	});

	// 编辑,
	commBody.find(".add-ordinary-btn").on("click", function () {
		
		//id
		var tickId = $(this).parents("ul").attr("data-id");
		//修改的发票抬头
		$('#tname').val($('#tick'+tickId).html());
		
		$(".invoice-frist1").attr("style","display:none");
        $("#invoice-frist1").attr("style","display:block");
        $(".update-btn1").click(function(){
            $(".invoice-frist1").attr("style","display:block");
        $("#invoice-frist1").attr("style","display:none");
        });
        
        $('#editsub').on("click",function(){
        	$.ajax({
    			url: PAGE_CONFIG.requestUrl.edittick,
    			type: "put",
    			data: {
    				id: tickId,//id
    				tname:$('#tname').val(), //新的发票抬头
    				_token: COMM_DATA.csrfToken
    			},
    			success: function(result) {
    				//响应
    				setClassifyData(result.data, classifyTempl);
    			},
    			error: function() {
    				
    				var conf = {
    						title : "注意",
    						message : "修改普通发票失败!",
    						ok_txt : "确定"
    					};
    						commTemplUtil.showErrorDialog(conf);
    			}
    		});
        });
	});
}

//绑定新增普通发票
function initAdd(){
	 $("#add").click(function(){
		 $(".invoice-frist1").attr("style","display:none");
	        $("#invoice-frist1").attr("style","display:block");
	        $(".update-btn1").click(function(){
	            $(".invoice-frist1").attr("style","display:block");
	        $("#invoice-frist1").attr("style","display:none");
	        });
	        
	        $('#editsub').on("click",function(){
	        	$.ajax({
	    			url: PAGE_CONFIG.requestUrl.addtick,
	    			type: "put",
	    			data: {
	    				tname:$('#tname').val(), //新的发票抬头
	    				_token: COMM_DATA.csrfToken
	    			},
	    			success: function(result) {
	    				//响应
	    				setClassifyData(result.data, classifyTempl);
	    			},
	    			error: function() {
	    				
	    				var conf = {
	    						title : "注意",
	    						message : "修改普通发票失败!",
	    						ok_txt : "确定"
	    					};
	    						commTemplUtil.showErrorDialog(conf);
	    			}
	    		});
	        });
     });
}
//地区下拉框
var areaTemplObj = _.template($('#area-option-templ').html());
//初始化增票信息及表单验证提交
function initVATinvoice() {

    //渲染省
    $.ajax({
        url : PAGE_CONFIG.requestUrl.addrProvince,
        type : 'get',
        dataType : 'json',
        success : function (result) {
            var datas = $.extend([], result.data);
            var tmplObjHtml = areaTemplObj(datas);
            $("#province").html(tmplObjHtml);
        },
        error : function (xhr, status, error) {
            var tmplObjHtml = areaTemplObj([]);
            $("#province").html(tmplObjHtml);
        }
    });

    $("#province").on("change", function () {
        var code = $(this).val();
        renderAddrCity(code);
    });
    $("#city").on("change", function () {
        var code = $(this).val();
        renderAddrCounty(code);
    });

    //渲染市
    $.ajax({
        url : PAGE_CONFIG.requestUrl.addrProvince,
        type : 'get',
        dataType : 'json',
        success : function (result) {
            var datas = $.extend([], result.data);
            var tmplObjHtml = areaTemplObj(datas);
            $("#city").html(tmplObjHtml);
        },
        error : function (xhr, status, error) {
            var tmplObjHtml = areaTemplObj([]);
            $("#city").html(tmplObjHtml);
        }
    });

    //渲染区县
    $.ajax({
        url : PAGE_CONFIG.requestUrl.addrProvince,
        type : 'get',
        dataType : 'json',
        success : function (result) {
            var datas = $.extend([], result.data);
            var tmplObjHtml = areaTemplObj(datas);
            $("#country").html(tmplObjHtml);
        },
        error : function (xhr, status, error) {
            var tmplObjHtml = areaTemplObj([]);
            $("#country").html(tmplObjHtml);
        }
    });

    // 普通增票查询
    $.ajax({
        url : PAGE_CONFIG.requestUrl.queryVATinvoice,
        type : "get",
        success : function (result) {
            $('#companyname').val(result.data.companyname);
            $('#idcode').val(result.data.idcode);
            $('#regaddr').val(result.data.regaddr);
            $('#regtel').val(result.data.regtel);
            $('#bank').val(result.data.bank);
            $('#bankacct').val(result.data.bankacct);
            $('#name').val(result.data.name);
            $('#tel').val(result.data.tel);

            $('#addr').val(result.data.addr);

            //选中 省下拉框
            $("#province").val(result.data.province);
            //选中 市下拉框
            $("#city").val(result.data.city);
            //选中 区下拉框
            $("#country").val(result.data.country);
        },
        error : function () {
            var conf = {
                title : "注意",
                message : "获取发票信息失败!",
                ok_txt : "确定"
            };
            commTemplUtil.showErrorDialog(conf);
        }
    });

    //绑定提交事件
    $('#savesub').on('click', function () {
        // 添加 验证逻辑;
        var formValidate = $("#form").validate({
                rules : {
                    companyname : "required",
                    idcode : "required",
                    regaddr : "required",
                    regtel : "required",
                    bank : "required",
                    bankacct : "required",
                    name : "required",
                    tel : "required",
                    addr : "required"
                },
                errorPlacement : function (error, element) {
                    if (element.attr("type") == "text") {
                        element.after($("<span class='error-line'  align='center'/>").append(error));
                    }
                }
            });

        // 资料提交申请
        if (!formValidate.form()) {
            return false;
        }
        $("#form").submit();

    });
}

//市
function renderAddrCity(provinceCode) {

	// 市
	$.ajax({
		url : PAGE_CONFIG.requestUrl.addrCity,
		type : 'post',
		dataType : 'json',
		data : {
			code : provinceCode,
			_token : COMM_DATA.csrfToken
		},
		success : function (result) {
			var datas = $.extend([], result.data);
			var tmplObjHtml = areaTemplObj(datas);
			$("#city").html(tmplObjHtml);

		},
		error : function (xhr, status, error) {
			var tmplObjHtml = areaTemplObj([]);
			$("#city").html(tmplObjHtml);
		}
	});
	
	$("#city").empty().html(areaTemplObj([]));
	$("#country").empty().html(areaTemplObj([]));
};
//区/县
function renderAddrCounty(cityCode) {
	// 区/县
	$.ajax({
		url : PAGE_CONFIG.requestUrl.addrCounty,
		type : 'post',
		dataType : 'json',
		data : {
			code : cityCode,
			_token : COMM_DATA.csrfToken
		},
		success : function (result) {
			var datas = $.extend([], result.data);
			var tmplObjHtml = areaTemplObj(datas);
			$("#country").html(tmplObjHtml);
		},
		error : function (xhr, status, error) {
			var tmplObjHtml = areaTemplObj([]);
			$("#country").html(tmplObjHtml);
		}
	});
};